package jtierno.organizadorMaterias.model;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.apache.commons.collections.CollectionUtils;

public class CorrelativasMateria {
	private Map<Materia, List<Materia>> correlatividades;

	public CorrelativasMateria() {
		correlatividades = new HashMap<Materia, List<Materia>>();
	}
	
	public void agregarCorrelatividad(Materia raiz, List<Materia> correlativas){
		List<Materia> correlativasExistentes = correlatividades.get(raiz);
		if(CollectionUtils.isNotEmpty(correlativasExistentes)){
			correlativasExistentes.addAll(correlativas);
		}
		correlatividades.put(raiz, correlativas);
		for (Materia materia : correlativas) {
			materia.addMateriaPredecesora(raiz);
		}
	}
	
	public void quitarCorrelatividad(Materia raiz, Materia correlativa){
		List<Materia> correlativasExistentes = correlatividades.get(raiz);
		if(CollectionUtils.isNotEmpty(correlativasExistentes)){
			correlativasExistentes.remove(correlativa);
			correlativa.quitarPredecesora(raiz);
		}
	}
	public List<Materia> getCorrelativas (Materia raiz){
		return correlatividades.get(raiz);
	}
}
